package cn.iocoder.yudao.module.infra.service.face;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.infra.controller.admin.face.vo.FaceConfigPageReqVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.face.FaceConfigDO;

/**
 * 人脸识别配置 Service 接口
 *
 * @author 芋道源码
 */
public interface FaceConfigService {

    /**
     * 获取启用的人脸识别配置
     *
     * @return 人脸识别配置
     */
    FaceConfigDO getEnabledConfig();

    /**
     * 创建人脸识别配置
     *
     * @param faceConfig 人脸识别配置
     * @return 配置ID
     */
    Long createConfig(FaceConfigDO faceConfig);

    /**
     * 更新人脸识别配置
     *
     * @param faceConfig 人脸识别配置
     */
    void updateConfig(FaceConfigDO faceConfig);

    /**
     * 删除人脸识别配置
     *
     * @param id 配置ID
     */
    void deleteConfig(Long id);

    /**
     * 获取人脸识别配置
     *
     * @param id 配置ID
     * @return 人脸识别配置
     */
    FaceConfigDO getConfig(Long id);

    /**
     * 获得人脸识别配置分页
     *
     * @param pageReqVO 分页查询
     * @return 人脸识别配置分页
     */
    PageResult<FaceConfigDO> getConfigPage(FaceConfigPageReqVO pageReqVO);

}